<!DOCTYPE html>
<!-- saved from url=(0060)https://www.w3cschool.cn/zhengzebiaodashi/regexp-syntax.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>正则表达式 – 语法_w3cschool</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="keywords" content="正则表达式 – 语法">
<meta name="description" content="正则表达式 - 语法  正则表达式(regular expression)描述了一种字符串匹配的模式，可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。  列目录时，　dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则_来自正则表达式，w3cschool。">
<link href="./正则表达式 – 语法_w3cschool_files/font-awesome.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="./正则表达式 – 语法_w3cschool_files/w3.css">
<link rel="stylesheet" href="./正则表达式 – 语法_w3cschool_files/style-kn-project-view.css" type="text/css">
<link rel="stylesheet" href="./正则表达式 – 语法_w3cschool_files/style-theme.css" type="text/css">
<link rel="stylesheet" href="./正则表达式 – 语法_w3cschool_files/project.css">
<link href="./正则表达式 – 语法_w3cschool_files/default.css" rel="stylesheet" type="text/css">
<script src="./正则表达式 – 语法_w3cschool_files/push.js.下载"></script><script src="./正则表达式 – 语法_w3cschool_files/hm.js.下载"></script><script src="./正则表达式 – 语法_w3cschool_files/highlight.pack.js.下载" type="text/javascript"></script>
<link rel="shortcut icon" href="https://www.w3cschool.cn/statics/images/favicon.ico">
<script src="./正则表达式 – 语法_w3cschool_files/jquery-1.8.3.min.js.下载" type="text/javascript"></script>
<script src="./正则表达式 – 语法_w3cschool_files/jquery.slimscroll.min.js.下载" type="text/javascript"></script>
<script src="./正则表达式 – 语法_w3cschool_files/project.leftbox.js.下载" type="text/javascript"></script><style>.left-container {width:270px;}.left-drager{left:270px;}.main-container{margin-left:270px;}#pro-footer{margin-left:270px;}.space-tools-section{width:270px;}</style>
<style type="text/css">
/*点赞*/
.islike{
float: right;
display: inline-block;
line-height: 30px;
padding: 0 5px;
vertical-align: middle;
color: #333
}
.islike a{
color: #3a3838;
text-decoration: none;
}
.isdone{
color: #ed9c28;
}

/*点赞结束*/
</style><link type="text/css" rel="stylesheet" href="./正则表达式 – 语法_w3cschool_files/paypraise.css"><script src="./正则表达式 – 语法_w3cschool_files/share.js.下载"></script><link rel="stylesheet" href="./正则表达式 – 语法_w3cschool_files/share_style0_16.css"></head>

<body>
<div id="full-height-container" class="project-container color-theme-white">
<!--控制本地颜色主题样式-->
<script type="text/javascript">
var tempColor = $.cookie("color");
if (tempColor != undefined) {
$("#full-height-container").addClass(tempColor);
}
</script>
<!--header start--> 
<div id="header">
<div id="header_item">
<div id="header_index">
<div id="header-l">
<a href="https://www.w3cschool.cn/" title="w3cschool" class="logo"><img src="./正则表达式 – 语法_w3cschool_files/header-logo.png" alt="W3Cschool"></a>
<ul class="header-menu">
<li><a href="https://www.w3cschool.cn/tutorial" title="编程入门教程">编程入门教程</a></li>
<li><a href="https://www.w3cschool.cn/courses/" title="编程课程">编程课程</a></li> 
<li><a href="https://www.w3cschool.cn/manual" title="开源技术文档">极客文档</a></li> 
<li class="dropdown"><a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-syntax.html#" class="dropbtn">学院<i class="down-icon1 angle-down-icon"></i></a>
<div class="dropdown-content">
<a href="https://www.w3cschool.cn/minicourse/" title="编程微课">编程微课</a>
<a href="https://www.w3cschool.cn/codecamp/" title="编程实战训练">编程实战训练</a>
<a href="https://www.w3cschool.cn/exam/" title="编程题库">编程题库</a>
<a href="https://www.w3cschool.cn/examples" title="编程实例">编程实例</a>
<a href="https://www.w3cschool.cn/question/" title="编程问答">编程问答</a>
<a href="https://www.w3cschool.cn/codedemo" title="代码实例">代码实例</a>
</div> 
</li>
<li class="dropdown"><a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-syntax.html#" class="dropbtn">百宝箱<i class="down-icon1 angle-down-icon"></i></a>
<div class="dropdown-content">
<a href="https://123.w3cschool.cn/webtools" target="_blank" title="W3Cschool在线工具集合">在线工具</a>
<a href="https://123.w3cschool.cn/" target="_blank" title="W3Cschool极客导航">极客导航</a>
<a href="https://www.w3cschool.cn/dict/" title="速查词典">速查词典</a>
<a href="https://www.w3cschool.cn/group/" title="群组">群组</a>
<a href="https://www.w3cschool.cn/position/paths" title="学习路径">学习路径</a>
<!-- <a href="//www.w3cschool.cn/popularuser" title="排行榜">排行榜</a> -->
<!-- <a href="//www.w3cschool.cn/activity/" title="活动">活动</a> -->
</div> 
</li>
<li><a href="https://www.w3cschool.cn/vip" title="会员">会员<i class="hot-icon"></i></a></li>
</ul>
</div>
<div id="header-r">
<div class="sig-box"><div class="sig-box-info"><a href="https://www.w3cschool.cn/register?refer=/zhengzebiaodashi/regexp-syntax.html" class="login-bg">注册</a><span class="sig-line">|</span><a href="https://www.w3cschool.cn/login?refer=/zhengzebiaodashi/regexp-syntax.html">登录</a></div></div>
<a href="https://www.w3cschool.cn/download" target="_blank" class="header-app" title="w3cschool移动端">移动端
<div class="dropdown-content qrcode-box">
<span class="j"></span>
<div class="qrcode-img">
<img src="./正则表达式 – 语法_w3cschool_files/app-qrcode2.png" alt="扫码下载APP" width="150" height="150">
<p>扫码下载APP</p>
</div>
<div class="qrcode-img">
<img src="./正则表达式 – 语法_w3cschool_files/mp-qrcode.png" alt="w3cschool公众号" width="150" height="150">
<p>w3cschool公众号</p>
</div>
</div>
</a>
<div class="searchbox">
<form action="https://www.w3cschool.cn/search" target="_self">
<input type="text" name="w" class="box" id="searched_content" placeholder="输入关键字搜索...">
<button type="submit" class="button"></button>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="register-Box" id="register-Box" style="display: none;">
<div class="register-Box-content">
<div class="register-Box-top">
<span class="register-Box-title">注册成功</span>
<span onclick="closeDialogBox(this)" class="feedback-Box-close">X</span>
</div>
<div class="register-Box-info">
<div class="register-Box-left" style="float: left;">
<img class="register-cover" src="./正则表达式 – 语法_w3cschool_files/avatar_14.jpg">
</div>
<div class="register-Box-right">

<p class="register-userinfo-title">
<i class="usertype-ico-1"></i><span>W3Cschool</span>
</p>
<p class="register-userinfo-info">恭喜您成为首批注册用户</p>
<p class="register-userinfo-info">获得88经验值奖励</p>
<button class="search-s" onclick="closeDialogBox(this)" id="registerSubmit">马上体验</button>
</div>
</div>
</div>
</div>
<script>
var apppath = '/zhengzebiaodashi/regexp-syntax.html';
var domain  = '//www.w3cschool.cn';
</script>
<!--header end-->
 
<div id="m-splitter">
<div class="m-splitter-left left-container" style="width: 270px; height: 838px;">
<div class="slimScrollDiv" style="position: relative; overflow: hidden; width: inherit; height: 838px;"><div class="fixed-sidebar mscroller" style="width: inherit; height: 838px; overflow: hidden;">
<div class="splitter-sidebar">
<div class="sidebar-space-info">
<a href="https://www.w3cschool.cn/zhengzebiaodashi" title="正则表达式">
<div class="sidebar-pro-wrapper">
<div class="sidebar-pro-container">
<div class="sidebar-pro-img">
<span><img class="pimg-cover" alt="正则表达式" src="./正则表达式 – 语法_w3cschool_files/cover_zhengzebiaodashi.png"></span>
</div>
</div>
</div>
<div class="pro-name-container">
<div class="sidebar-pro-name">
<span>正则表达式</span>
</div>
</div>
</a>
</div>
<div class="sidebar-pro-nav">
<ul class="page-sidebar-menu">
<li class="pro-m">
<a class="btn-thumbs-up" href="javascript:;" onclick="isProjectLike()">
<i class="icon-thumbs-up"></i> <span id="likestatus">赞</span>
</a>
</li>
<li class="pro-m">
<a id="hbstar" href="javascript:;" onclick="isProjectStar()" data-type="star"><i class="icon-star-empty"></i> <span>收藏</span></a>
</li>
<li class="pro-m">
<a href="javascript:;" title="分享" class="share-btn  popup_more bdsharebuttonbox bdshare-button-style0-16" data-cmd="more" data-bd-bind="1560953374211"><i class="icon-share"></i> 分享</a>
</li>
</ul>
</div>
<div class="sidebar-menu">
<ul>    
<li class="nav-item"><a href="https://www.w3cschool.cn/zhengzebiaodashi/list/" title="更多文章"><i class="icon-bookmark-empty"></i> <span class="nav-item-label">更多文章</span></a></li>                     
</ul>
</div>
<!--左侧栏导航 start-->
<div class="sidebar-nav">
<ul class="treeth">
<li class="active" target="sidebar-tree-content"><a href="javascript:;" class="text" title="目录"><i class="icon icon-th-list"></i> <span class="title">目录</span></a></li>
<li class="" target="search-box"><a href="javascript:;" class="text" title="搜索"><i class="icon icon-search"></i> <span class="title">搜索</span></a></li>
<li target="stars-box"><a href="javascript:;" class="text" title="书签"><i class="icon icon-bookmark"></i> <span class="title">书签</span></a></li>
</ul>
</div>
<!--左侧栏导航 end-->
<div style="clear:both"></div>
<div class="sidebar-content">                                          
<div class="sidebar-tree">
<div class="sidebar-tree-content">
<div class="dd" id="nestable_handbook" data-tid="4787" data-id="handbook">
<ol class="dd-list">


    
<li class="dd-item" data-id="regexp-tutorial">
<div class="dd-content  ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-tutorial.html" title="正则表达式 – 教程">正则表达式 – 教程</a>
</div>
<ol class="dd-list">
                          

</ol></li>

    
<li class="dd-item" data-id="regexp-intro">
<div class="dd-content  ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-intro.html" title="正则表达式 – 简介">正则表达式 – 简介</a>
</div>
<ol class="dd-list">
                          

</ol></li>

    
<li class="dd-item" data-id="regexp-syntax">
<div class="dd-content   active ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-syntax.html" title="正则表达式 – 语法">正则表达式 – 语法</a>
</div>
<ol class="dd-list">
                          

</ol></li>

    
<li class="dd-item" data-id="regexp-metachar">
<div class="dd-content  ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-metachar.html" title="正则表达式 – 元字符">正则表达式 – 元字符</a>
</div>
<ol class="dd-list">
                          

</ol></li>

    
<li class="dd-item" data-id="regexp-operator">
<div class="dd-content  ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-operator.html" title="正则表达式 – 运算符优先级">正则表达式 – 运算符优先级</a>
</div>
<ol class="dd-list">
                          

</ol></li>

    
<li class="dd-item" data-id="regexp-rule">
<div class="dd-content  ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-rule.html" title="正则表达式 – 匹配规则">正则表达式 – 匹配规则</a>
</div>
<ol class="dd-list">
                          

</ol></li>

    
<li class="dd-item" data-id="regexp-example">
<div class="dd-content  ">
<i class="ic-folder-open2"></i>
                                 
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-example.html" title="正则表达式 – 示例">正则表达式 – 示例</a>
</div>
<ol class="dd-list">
                          

</ol>
</li>
</ol>
</div>  
</div>                                
<!--  sidebar-tree-content end  -->
<div class="search-box hide1">
<div id="knsearch" class="tab-pane">
<div class="knsearch-input">
<input type="text" placeholder="搜索手册内容" name="w" class="input-s">
<button class="knsearchbtn">搜索</button>
<!--<button class="kncleanbtn">清空</button>-->
</div>                    
<div class="searchres">
</div>
<div class="sidebar-tree-dict"></div>
</div>
</div>
<div class="stars-box hide1">                  
<div id="kncollect" class="tab-pane">
<ul class="dd-list">
<li class="nostar">请登录查看</li>
</ul>
</div>
</div>
</div>                    
</div>
</div>
<!-- <div class="space-tools-section">
<div class="tools-button">
<a href="" class="expand-collapse-trigger"></a>
</div>
</div> -->
</div><div class="slimScrollBar" style="background: rgb(161, 178, 189); width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 1px; height: 887px;"></div><div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; background: rgb(51, 51, 51); opacity: 0.2; z-index: 90; right: 1px;"></div></div>
</div>
<div class="splitter-handle left-drager">
<div class="left-dragger-c splitter-handle-highlight"></div>
</div>
<div id="pro-mian" class="main-container font0">
<div class="project-body">
<div class="portlet-title pro-title" style="width: 1599px;">
<div class="set-btn-group font-settings pull-left">
<a href="javascript:;" class="expand-collapse-trigger" title="折叠/展开"><i class="icon-th-list"></i></a>
<a href="javascript:;" class="toggle-dropdown" title="视觉主题设置"><i class="icon-font"></i></a>
<div class="set-dropdown-menu docblur" style="display:none;">
<div class="dropdown-caret">
<span class="caret-outer"></span>
<span class="caret-inner"></span>
</div>
<div class="buttons font-opt">
<button class="button size font-reduce" font="reduce" title="缩小字体">A</button>
<button class="button size font-enlarge" font="enlarge" title="放大字体">A</button>
</div>
<div class="buttons bg-color">
<button class="button theme" color="color-theme-white" title="默认模式">默认</button>
<button class="button theme" color="color-theme-sepia" title="护眼模式">护眼</button>
<button class="button theme" color="color-theme-night" title="夜间模式">夜间</button>
</div>
</div>
</div>
<div class="kn-btn-group pull-right">            
<span id="content-head-viewcount" class="viewcount-btn"><i class="icon-eye-open"></i> <span>阅读(96917)</span></span>
<a id="knstar" href="javascript:;" onclick="isstar()" data-type="star"><i class="icon-bookmark-empty"></i> <span>书签</span></a>
<a class="btn-thumbs-up" href="javascript:;" onclick="islike()"><i class="icon-thumbs-up"></i> <span id="likestatus">赞</span>(<span id="likecount">24</span>)</a>
<a href="javascript:;" title="分享" class="share-btn  popup_more bdsharebuttonbox bdshare-button-style0-16" data-cmd="more" data-bd-bind="1560953374211"><i class="icon-share"></i> 分享</a>
<a href="https://www.w3cschool.cn/edit/zhengzebiaodashi/regexp-syntax" rel="nofollow"><i class="icon-edit"></i> <span>我要纠错</span></a>
</div>
</div>
<div id="pro-mian-header">
<div class="content-top">
<h1>正则表达式 – 语法</h1>
</div>
<div class="kn-infomation">
由&nbsp;<span>star333</span>&nbsp;创建， 最后一次修改&nbsp;<span>2015-09-08</span>    
</div>          
</div>          
<div class="content-bg">
<div class="content-intro view-box "><h2>正则表达式 - <span class="color_h1">语法</span></h2> <div class="tutintro"> <p>正则表达式(regular expression)描述了一种字符串匹配的模式，可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。</p> <ul> <li>列目录时，　dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。</li> <li>构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。</li> </ul> <p>正则表达式是由普通字符（例如字符 a 到 z）以及特殊字符（称为"元字符"）组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板，将某个字符模式与所搜索的字符串进行匹配。</p> </div> <h2>普通字符</h2> <p>普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。</p> <h2>非打印字符</h2> <p>非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列：</p> <table class="reference notranslate"> <tbody><tr> <th width="20%">字符</th> <th width="80%">描述</th> </tr> <tr> <td>\cx</td> <td>匹配由x指明的控制字符。例如， \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则，将 c 视为一个原义的 'c' 字符。</td> </tr> <tr> <td>\f</td> <td>匹配一个换页符。等价于 \x0c 和 \cL。</td> </tr> <tr> <td>\n</td> <td>匹配一个换行符。等价于 \x0a 和 \cJ。</td> </tr> <tr> <td>\r</td> <td>匹配一个回车符。等价于 \x0d 和 \cM。</td> </tr> <tr> <td>\s</td> <td>匹配任何空白字符，包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。</td> </tr> <tr> <td>\S</td> <td>匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。</td> </tr> <tr> <td>\t</td> <td>匹配一个制表符。等价于 \x09 和 \cI。</td> </tr> <tr> <td>\v</td> <td>匹配一个垂直制表符。等价于 \x0b 和 \cK。</td> </tr> </tbody></table> <h2>特殊字符</h2> <p>所谓特殊字符，就是一些有特殊含义的字符，如上面说的"*.txt"中的*，简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件，则需要对*进行转义，即在其前加一个\。ls \*.txt。</p> <p>许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符，必须首先使字符"转义"，即，将反斜杠字符 (\) 放在它们前面。下表列出了正则表达式中的特殊字符：</p> <table class="reference notranslate"> <tbody><tr> <th width="20%">特别字符</th> <th width="80%">描述</th> </tr> <tr> <td>$</td> <td>匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性，则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身，请使用 \$。</td> </tr> <tr> <td>( )</td> <td>标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符，请使用 \( 和 \)。</td> </tr> <tr> <td>*</td> <td>匹配前面的子表达式零次或多次。要匹配 * 字符，请使用 \*。</td> </tr> <tr> <td>+</td> <td>匹配前面的子表达式一次或多次。要匹配 + 字符，请使用 \+。</td> </tr> <tr> <td>.</td> <td>匹配除换行符 \n之外的任何单字符。要匹配 .，请使用 \。</td> </tr> <tr> <td>[</td> <td>标记一个中括号表达式的开始。要匹配 [，请使用 \[。</td> </tr> <tr> <td>?</td> <td>匹配前面的子表达式零次或一次，或指明一个非贪婪限定符。要匹配 ? 字符，请使用 \?。</td> </tr> <tr> <td>\</td> <td>将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如， 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\"，而 '\(' 则匹配 "("。</td> </tr> <tr> <td>^</td> <td>匹配输入字符串的开始位置，除非在方括号表达式中使用，此时它表示不接受该字符集合。要匹配 ^ 字符本身，请使用 \^。</td> </tr> <tr> <td>{</td> <td>标记限定符表达式的开始。要匹配 {，请使用 \{。</td> </tr> <tr> <td>|</td> <td>指明两项之间的一个选择。要匹配 |，请使用 \|。</td> </tr> </tbody></table> <h2>限定符</h2> <p>限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?或{n}或{n,}或{n,m}共6种。</p> <p>正则表达式的限定符有：</p> <table class="reference notranslate"> <tbody><tr> <th width="20%">字符</th> <th width="80%">描述</th> </tr> <tr> <td>*</td> <td>匹配前面的子表达式零次或多次。例如，zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。</td> </tr> <tr> <td>+</td> <td>匹配前面的子表达式一次或多次。例如，'zo+' 能匹配 "zo" 以及 "zoo"，但不能匹配 "z"。+ 等价于 {1,}。</td> </tr> <tr> <td>?</td> <td>匹配前面的子表达式零次或一次。例如，"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。</td> </tr> <tr> <td>{n}</td> <td>n 是一个非负整数。匹配确定的 n 次。例如，'o{2}' 不能匹配 "Bob" 中的 'o'，但是能匹配 "food" 中的两个 o。</td> </tr> <tr> <td>{n,}</td> <td>n 是一个非负整数。至少匹配n 次。例如，'o{2,}' 不能匹配 "Bob" 中的 'o'，但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。</td> </tr> <tr> <td>{n,m}</td> <td>m 和 n 均为非负整数，其中n &lt;= m。最少匹配 n 次且最多匹配 m 次。例如，"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。</td> </tr> </tbody></table> <p>由于章节编号在大的输入文档中会很可能超过九，所以您需要一种方式来处理两位或三位章节编号。限定符给您这种能力。下面的正则表达式匹配编号为任何位数的章节标题：</p> <pre>/Chapter [1-9][0-9]*/</pre> <p>请注意，限定符出现在范围表达式之后。因此，它应用于整个范围表达式，在本例中，只指定从 0 到 9 的数字（包括 0 和 9）。</p> <p>这里不使用 + 限定符，因为在第二个位置或后面的位置不一定需要有一个数字。也不使用？字符，因为它将章节编号限制到只有两位数。您需要至少匹配 Chapter 和空格字符后面的一个数字。</p> <p>如果您知道章节编号被限制为只有 99 章，可以使用下面的表达式来至少指定一位但至多两位数字。</p> <pre>/Chapter [0-9]{1,2}/</pre> <p>上面的表达式的缺点是，大于 99 的章节编号仍只匹配开头两位数字。另一个缺点是 Chapter 0 也将匹配。只匹配两位数字的更好的表达式如下：</p> <pre>/Chapter [1-9][0-9]?/</pre> <p>或</p> <pre>/Chapter [1-9][0-9]{0,1}/</pre> <p><strong>*、+和?限定符都是贪婪的，因为它们会尽可能多的匹配文字，只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。</strong></p> <p>例如，您可能搜索 HTML 文档，以查找括在 H1 标记内的章节标题。该文本在您的文档中如下：</p> <pre>&lt;H1&gt;Chapter 1 – Introduction to Regular Expressions&lt;/H1&gt;</pre> <p>下面的表达式匹配从开始小于符号 (&lt;) 到关闭 H1 标记的大于符号 (&gt;) 之间的所有内容。</p> <pre>/&lt;.*&gt;/</pre> <p>如果您只需要匹配开始 H1 标记，下面的"非贪心"表达式只匹配 &lt;H1&gt;。</p> <pre>/&lt;.*?&gt;/</pre> <p>通过在 *、+ 或 ? 限定符之后放置 ?，该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配。</p> <h2>定位符</h2> <p>定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式，这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。</p> <p>定位符用来描述字符串或单词的边界，^和$分别指字符串的开始与结束，\b描述单词的前或后边界，\B表示非单词边界。</p> <p>正则表达式的限定符有：</p> <table class="reference notranslate"> <tbody><tr> <th width="20%">字符</th> <th width="80%">描述</th> </tr> <tr> <td>^</td> <td>匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性，^ 还会与 \n 或 \r 之后的位置匹配。</td> </tr> <tr> <td>$</td> <td>匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性，$ 还会与 \n 或 \r 之前的位置匹配。</td> </tr> <tr> <td>\b</td> <td>匹配一个字边界，即字与空格间的位置。</td> </tr> <tr> <td>\B</td> <td>非字边界匹配。</td> </tr> </tbody></table> <p><strong>注意</strong>：不能将限定符与定位点一起使用。由于在紧靠换行或者字边界的前面或后面不能有一个以上位置，因此不允许诸如 ^* 之类的表达式。</p> <p>若要匹配一行文本开始处的文本，请在正则表达式的开始使用 ^ 字符。不要将 ^ 的这种用法与中括号表达式内的用法混淆。</p> <p>若要匹配一行文本的结束处的文本，请在正则表达式的结束处使用 $ 字符。</p> <p>若要在搜索章节标题时使用定位点，下面的正则表达式匹配一个章节标题，该标题只包含两个尾随数字，并且出现在行首：</p> <pre>/^Chapter [1-9][0-9]{0,1}/</pre> <p>真正的章节标题不仅出现行的开始处，而且它还是该行中仅有的文本。它即出现在行首又出现在同一行的结尾。下面的表达式能确保指定的匹配只匹配章节而不匹配交叉引用。通过创建只匹配一行文本的开始和结尾的正则表达式，就可做到这一点。</p> <pre>/^Chapter [1-9][0-9]{0,1}$/</pre> <p>匹配字边界稍有不同，但向正则表达式添加了很重要的能力。字边界是单词和空格之间的位置。非字边界是任何其他位置。下面的表达式匹配单词 Chapter 的开头三个字符，因为这三个字符出现字边界后面：</p> <pre>/\bCha/</pre> <p>\b 字符的位置是非常重要的。如果它位于要匹配的字符串的开始，它在单词的开始处查找匹配项。如果它位于字符串的结尾，它在单词的结尾处查找匹配项。例如，下面的表达式匹配单词 Chapter 中的字符串 ter，因为它出现在字边界的前面：</p> <pre>/ter\b/</pre> <p>下面的表达式匹配 Chapter 中的字符串 apt，但不匹配 aptitude 中的字符串 apt：</p> <pre>/\Bapt/</pre> <p>字符串 apt 出现在单词 Chapter 中的非字边界处，但出现在单词 aptitude 中的字边界处。对于 \B 非字边界运算符，位置并不重要，因为匹配不关心究竟是单词的开头还是结尾。</p> <h2>选择</h2> <p>用圆括号将所有选择项括起来，相邻的选择项之间用|分隔。但用圆括号会有一个副作用，是相关的匹配会被缓存，此时可用?:放在第一个选项前来消除这种副作用。</p> <p>其中?:是非捕获元之一，还有两个非捕获元是?=和?!，这两个还有更多的含义，前者为正向预查，在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串，后者为负向预查，在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。</p> <h2>反向引用</h2> <p>对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中，所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始，最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 '\n' 访问，其中 n 为一个标识特定缓冲区的一位或两位十进制数。</p> <p>可以使用非捕获元字符 '?:'、'?=' 或 '?!' 来重写捕获，忽略对相关匹配的保存。 </p> <p>反向引用的最简单的、最有用的应用之一，是提供查找文本中两个相同的相邻单词的匹配项的能力。以下面的句子为例：</p> <pre>Is is the cost of of gasoline going up up?</pre> <p>上面的句子很显然有多个重复的单词。如果能设计一种方法定位该句子，而不必查找每个单词的重复出现，那该有多好。下面的正则表达式使用单个子表达式来实现这一点：</p> <pre>/\b([a-z]+) \1\b/gi</pre> <p>捕获的表达式，正如 [a-z]+ 指定的，包括一个或多个字母。正则表达式的第二部分是对以前捕获的子匹配项的引用，即，单词的第二个匹配项正好由括号表达式匹配。\1 指定第一个子匹配项。字边界元字符确保只检测整个单词。否则，诸如"is issued"或"this is"之类的词组将不能正确地被此表达式识别。</p> <p>正则表达式后面的全局标记 (g) 指示，将该表达式应用到输入字符串中能够查找到的尽可能多的匹配。表达式的结尾处的不区分大小写 (i) 标记指定不区分大小写。多行标记指定换行符的两边可能出现潜在的匹配。</p> <p>反向引用还可以将通用资源指示符 (URI) 分解为其组件。假定您想将下面的 URI 分解为协议（ftp、http 等等）、域地址和页/路径：</p> <pre>http://www.w3cschool.cn:80/html/html-tutorial.html
</pre> <p>下面的正则表达式提供该功能：</p> <pre>/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
</pre> <p>第一个括号子表达式捕获 Web 地址的协议部分。该子表达式匹配在冒号和两个正斜杠前面的任何单词。第二个括号子表达式捕获地址的域地址部分。子表达式匹配 / 或 : 之外的一个或多个字符。第三个括号子表达式捕获端口号（如果指定了的话）。该子表达式匹配冒号后面的零个或多个数字。只能重复一次该子表达式。最后，第四个括号子表达式捕获 Web 地址指定的路径和/或页信息。该子表达式能匹配不包括 # 或空格字符的任何字符序列。</p> <p>将正则表达式应用到上面的 URI，各子匹配项包含下面的内容：</p> <ul> <li>第一个括号子表达式包含"http"</li> <li>第二个括号子表达式包含"www.w3cschool.cn"</li> <li>第三个括号子表达式包含":80"</li> <li>第四个括号子表达式包含"/html/html-tutorial.html"</li> </ul></div>
<div style="clear:both"></div>
</div>
<!--控制本地字体主题样式-->
<script type="text/javascript">
var tempFontsize = $.cookie("fontsize");
if (tempFontsize != undefined) {
$("#pro-mian").addClass(tempFontsize);
}
</script>
<!--我要赞赏-->
<div class="project-sq"><div class="project-sq-info"><span>您的支持将鼓励我们做得更好</span></div><ul class="project-sq-avatar"></ul><div class="project-sq-btnarea"><a href="javascript:;">赞赏支持</a></div></div>
<!--我要赞赏结束-->
<!--我要评价-->
<div id="evaluate-box"><span id="evaluates">以上内容是否对您有帮助：</span><span class="star_score"><span title="1分"></span><span title="2分"></span><span title="3分"></span><span title="4分"></span><span title="5分"></span></span></div>
<!--评价结束-->
<div class="content-links">
<div class="previous-link">← <a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-intro.html" title="上一篇：正则表达式 – 简介">正则表达式 – 简介</a></div>
<div class="next-link"><a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-metachar.html" title="下一篇：正则表达式 – 元字符">正则表达式 – 元字符</a> →</div>
</div>
<!--练习、出题、写笔记-->
<div class="project-operation">
<div class="pull-center">
<a href="javascript:;" class="op-btn note-btn" onclick="openNote()"><i class="icon-pencil"></i>写笔记</a>
</div>
</div>
<!--横版广告放置-->
 
<!-- 笔记列表 -->
<div class="notelist-box" style="display:none">
<div class="notelist-head" onclick="openNoteList(this)">
<span class="notelist-title">精选笔记</span>
<i class="icon-circle-arrow-up"></i>
</div>
<div class="notelist-content" id="notelist_content" style="display: none;">
</div>
</div>
<!--相关推荐|wiki推荐-->
<!--相关推荐|wiki推荐 结束-->
</div>
<div class="navigation-box">
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-intro.html" title="上一篇：正则表达式 – 简介" class="navigation navigation-prev"><i class="icon-chevron-left"></i></a>
<a href="https://www.w3cschool.cn/zhengzebiaodashi/regexp-metachar.html" title="下一篇：正则表达式 – 元字符" class="navigation navigation-next"><i class="icon-chevron-right"></i></a>
</div>
  </div>
<div id="pro-footer">
<div class="s-footer">
<div class="s-footer-bottom">
<p>Copyright © 2019 <a href="https://www.w3cschool.cn/" title="w3cschool">w3cschool.cn </a> All Rights Reserved. </p>
</div>
</div>
</div>
</div>
</div>
<div class="bottom-tools" style="bottom: 40px;">
<a id="scrollUp" href="javascript:;" title="飞回顶部" style="display: block;"></a>
<a class="onlinenote" style="" title="在线笔记" href="javascript:;" data-module="page">在线笔记</a>
<div class="qr-tool">二维码</div>
<a id="feedback" class="webjy" title="建议反馈" href="javascript:;" data-module="page" onclick="showDialogBox(this)">建议反馈</a>    
<div class="qr-img"><img src="./正则表达式 – 语法_w3cschool_files/mp-qrcode.png" alt="二维码"></div>
</div>

<div class="feedback-Box" style="display: none;">
<div class="feedback-Box-content" style="width: 800px;">
<div class="feedback-Box-top">
<span class="feedback-Box-title">意见反馈</span>
<span onclick="closeDialogBox(this)" class="feedback-Box-close">X</span>
</div>
<ul>
<li class="feedback-box">
<div id="feedbackRadio" type="radio" name="feedbackType" data-value="0" style=""> 意见反馈：</div>
<textarea name="reportInfo" id="elmaaa" class="feedback-text" rows="15" placeholder="请留下您宝贵的意见反馈吧。" style="width: 700px;height:200px;overflow:auto;"></textarea>
<p>联系方式：</p>
<input type="text" placeholder="留个联系方式呗..." name="reportAddress" class="radio-text" id="reportAddress" style="height: 30px;width: 200px;">
</li>
</ul>
<button class="search-s" onclick="dialogSubmit(this)" id="reportSubmit">提交</button>
</div>
</div>

<div id="note-start" style="display: none"></div>

<div id="detail" style="display:none;">
<div id="note-Dialog" class="note-Dialog">
<div class="note-Box-content">
<div class="ntitlebox">
<input type="text" placeholder="" name="ntitle" class="ntitle" id="ntitle">
</div>
<div id="editorarea">
<textarea name="ncontent" id="ncontent" class="ncontent" rows="15" placeholder="" style="width: 700px;height:200px;overflow:auto;"></textarea>
</div>
<p></p>
<a class="closenote" href="https://www.w3cschool.cn/my/note" target="_blank">查看完整版笔记</a>
<button class="notesubmit" id="notesubmit">保存</button>
<button class="notebtn pull-right closenote" style="margin:20px 0">关闭</button>
</div>
</div>
</div>

<div class="report-Box" style="display: none;">
<div class="report-Box-content">
<div class="report-Box-top">
<span class="report-Box-title">违规举报</span>
<span onclick="closeReportBox(this)" class="report-Box-close">X</span>
</div>
<ul>
<li class="radio-box">
<input id="reportRadio" type="radio" name="reportType" value="1" checked="checked"> 广告等垃圾信息
</li>
<li class="radio-box">
<input id="reportRadio" type="radio" name="reportType" value="2"> 不友善内容
</li>
<li class="radio-box">
<input id="reportRadio" type="radio" name="reportType" value="3"> 违反法律法规的内容
</li>
<li class="radio-box">
<input id="reportRadio" type="radio" name="reportType" value="4"> 不宜公开讨论的政治内容
</li>
<li class="radio-box" onclick="reportOther(this)">
<input id="reportRadio" type="radio" name="reportType" value="0"> 其他
<input type="text" class="radio-text" name="reportInfo" value="" placeholder="请填写您的举报理由。">
</li>
</ul>
<button class="search-s" onclick="reportSubmit(this)" id="reportSubmit">提交</button>
</div>
</div>
<div class="widget-body" data-type="project"><div class="widget-main" style=""><div class="widget-box"><div class="slogn"><a href="https://www.w3cschool.cn/register">免费注册w3cschool，收藏您感兴趣的教程手册！</a></div><div class="quicklogin quick-box"><a href="https://www.w3cschool.cn/register?refer=/zhengzebiaodashi/regexp-syntax.html" class="reg-btn">注册w3cschool</a><span>或直接</span><a href="https://www.w3cschool.cn/auth" class="qq-btn"><i class="pop-sns icons-qq-widget"></i>QQ登录</a><a href="javascript:;" onclick="wechatqr();" class="weixina"><i class="pop-sns icons-weixin-widget"></i>微信登录</a><a href="https://www.w3cschool.cn/auth?platform=weibo" class="weibo-btn"><i class="pop-sns icons-weibo-widget"></i>微博登录</a></div><div class="sig-group"><a href="https://www.w3cschool.cn/login?refer=/zhengzebiaodashi/regexp-syntax.html">已有账号，登录</a></div></div><a class="widget-box-close" href="javascript:;" title="关闭">X</a></div></div>
<div class="pay-area" data-static="//www.w3cschool.cn/statics"><div class="pay-tip-Box" style="display:none;"><div class="pay-tip-content"><div class="pay-tip-top"><span class="pay-tip-title">赞赏支持</span><span class="pay-tip-close">X</span></div><div class="pay-tip-body"><div class="pay-tip-price pay-tip-price-first"><a href="javascript:;" data-price="2" class="pay-tip-btn pay-tip-btn-ck">&nbsp;2元&nbsp;</a><a href="javascript:;" data-price="4" class="pay-tip-btn">&nbsp;4元&nbsp;</a><a href="javascript:;" data-price="8" class="pay-tip-btn">&nbsp;8元&nbsp;</a></div><div class="pay-tip-price"><a href="javascript:;" data-price="16" class="pay-tip-btn">16元</a><a href="javascript:;" data-price="32" class="pay-tip-btn">32元</a><a href="javascript:;" data-price="64" class="pay-tip-btn">64元</a></div><div class="pay-tip-paytype"><span>支付方式:</span><input type="radio" name="tiptype" checked="checked" value="ALIPAY"><img src="./正则表达式 – 语法_w3cschool_files/alipay.png"><input type="radio" name="tiptype" value="WXPAY"><img src="./正则表达式 – 语法_w3cschool_files/wechatpay.png"></div><div class="pay-tip-paytype "><span>余额支付:</span><input type="radio" name="tiptype" value="W3CPAY" disabled="disabled"><img src="./正则表达式 – 语法_w3cschool_files/w3cpay.png" class="img-gray"><input type="text" disabled="true" class="pay-tip-surplus" value="￥0.00"></div><div class="pay-fbi-waring"><span>特别提醒:本次支付为虚拟物品,不予退款,敬请谅解</span></div><div class="pay-tip-gopay"><a href="javascript:;">前往支付</a></div></div><div class="pay-tip-result" style="display:none;"><div class="pay-tip-result-title"><span>支付遇到问题?</span></div><div class="pay-tip-result-waring"><span><strong>温馨提示:</strong>支付完成前请不要关闭窗口,完成支付后请根据情况点击下面按钮</span></div><div class="pay-tip-result-btn"><a href="javascript:;" id="pay-success">赞赏成功</a><a href="javascript:;" id="pay-error">遇到问题</a></div></div></div></div></div>
<div class="dialog-area"></div>
<script src="./正则表达式 – 语法_w3cschool_files/shCore.min.js.下载" type="text/javascript"></script>
<script src="./正则表达式 – 语法_w3cschool_files/commonfooter.js.下载" type="text/javascript"></script>
<script src="./正则表达式 – 语法_w3cschool_files/project.view.js.下载" type="text/javascript"></script>
<script src="./正则表达式 – 语法_w3cschool_files/ajaxdo.core.js.下载" type="text/javascript"></script>
<script src="./正则表达式 – 语法_w3cschool_files/paypraise.js.下载" type="text/javascript"></script>
<script>
var kn = {
kename:'regexp-syntax',
pename:'zhengzebiaodashi',
ismenu:'0',
ktitle:'正则表达式 &#8211; 语法',
ktype:'kn',
original:'1',
uid:'0',
};
var book = {
pename:'zhengzebiaodashi',
bookname:'正则表达式'
};

var Gvar = {
activityflag: ''
};
function isProjectLike(){

if(kn.uid == '' || kn.uid == '0'){
toastr.warning("您还未登录,请先登录!",'',{"positionClass": "toast-top-center"});
return;
}
$.ajaxdo({
url: "/project/islike/zhengzebiaodashi.html",
type: "post",
dataType: 'json',
data: {},
sync: false,
success: function (data) {
if (data.statusCode == 200) {
$('.avatar-list').find('p').remove();
$('.avatar-list').append('<a href="/u/' + data.data + '" title="' + data.data + '"><img src="/attachments/avatar2/avatar_' + data.data + '.jpg" title=""></a>');
var likecount = $("#likecount").text() * 1 + 1;
$("#likecount").html(likecount);
$(".btn-thumbs-up i").attr('class','icon-thumbs-up isdone');
$("#likestatus").html('已赞');
toastr.success(data.message,'',{"positionClass": "toast-top-center"});
} else {
toastr.warning(data.message,'',{"positionClass": "toast-top-center"});
}
}
});
}
function isProjectStar(){
if(kn.uid == '' || kn.uid == '0'){
toastr.warning("您还未登录,请先登录!",'',{"positionClass": "toast-top-center"});
return;
}
var type = $('#hbstar').attr('data-type');
$.ajaxdo({
url: "/project/star/zhengzebiaodashi.html",
type: "post",
dataType: 'json',
data: {},
success: function (data) {
if(data.statusCode == 200){
if (type == 'star') {
$('#hbstar').html('<i class="icon-star isdone"></i><span>已收藏</span>');
$('#hbstar').attr('data-type','rstar');
toastr.success(data.message,'',{"positionClass": "toast-top-center"});
} else {
$('#hbstar').html('<i class="icon-star"></i><span>收藏</span>');
$('#hbstar').attr('data-type','star');
toastr.success(data.message,'',{"positionClass": "toast-top-center"});
}
}else{
toastr.warning(data.message,'',{"positionClass": "toast-top-center"});
}
}
});
}
$(function(){

if(kn.kename != ''){
 var lastviewUrl = '//'+window.location.host+'/'+kn.pename+'/'+kn.kename+'.html';
localStorage.setItem("lastview_"+kn.pename, lastviewUrl);
}

$(document).on("click",function(){
$(".docblur").hide();
});

$(".onlinenote").show();

if(location.hash !== ""){ // 修复锚点定位失效的问题
setTimeout(function(){
location.href=location.hash;
},300);
}

if(Gvar.activityflag > 0){ // 开启了活动
$.ajax({
url:"/getActivity",
type:"get",
dataType:"json",
success:function(msg){
function loadad(content){
var tpl = '<div class="activiey-area">'+
'<div class="activiey-bg"></div>'+
'<div class="activiey-main">'+
'<span class="close-btn"></span> <div style="max-height:500px;max-width:570px;">'+content+'</div></div>'+
'</div>';

$("body").append(tpl);

$(".activiey-main .close-btn").on("click",function(){
$(".activiey-area").hide();
});

}
if(msg.statusCode < 300){
console.log(msg.data);
// 写入cookie
$.cookie("activity_showed", 1);
loadad(msg.data.wincontent);
toastr.success(msg.message);
}else{
toastr.warning(msg.message);
}
}
});
}
var kename = kn.kename;
var fid    = "0";
var uid = '0';
$(document).on('keyup',function(e){
var keyCode = e.keyCode;
var prev,next;
if(keyCode == 37){ // 上一篇
prev = $(".navigation-prev");
if(prev.length > 0 && !prev.is(":hidden")){
location.href = prev.attr("href");
}
}
if(keyCode == 39){ // 下一篇
next = $(".navigation-next");
if(next.length > 0 && !next.is(":hidden")){
location.href = next.attr("href");
}
}
});
/*开启计时 准备记录积分*/
var vcreditfull = $.cookie('ypre_vcreditfull');
//console.log(vcreditfull);
if(vcreditfull == undefined && uid != '0' && uid != ''){
setTimeout(function(){
$.ajax({
url:"/project/setViewCredit",
type:"post",
data:{kename:kename},
dataType:"json",
success:function(msg){
var statusCode = {
'200':'success',
'400':'warning',
};
var toastrType = statusCode[msg.statusCode];
if(msg.statusCode == 300 || msg.statusCode == 400){
return;
}
toastr[toastrType](msg.message);
}
});
},30000);
}
hljs.initHighlightingOnLoad();//高亮代码
window._bd_share_config={"common":{"bdSnsKey":{},bdPopupOffsetTop:"5"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='/plugins/baidushare/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
});
$(".toggle-dropdown").on('click',function(e){
e.stopPropagation();
if ($(this).next().is(":hidden")){
$(this).next().show();    
}else{
$(this).next().hide();     
}
});

$(".set-dropdown-menu").on("click",function(e){
e.stopPropagation();
});
function getviewkn(){
var usernamestr ='';
$.ajax({
url:"/my/knowledge/getViewkn?pename="+book.pename,
dataType:"json",
success:function(msg){
var objli,objtt;
for(var p in msg){
objli = $("#nestable_handbook").find(".dd-item[data-id='"+msg[p]['kename']+"']");
if(objli.attr("ismenu") != 1){
objli.addClass("readed").find("a").attr("title","上次浏览时间:("+msg[p]['lasttime']+")");
}
}
}
}); 
}
function openNote(){
$(".onlinenote").trigger("click");
}
</script>
<script type="text/javascript">
  // 如果需要给后台返值的话，返回 $(".star_score span.select").size()的值即可。
$(function(){      
//生成5个星星
for(var i=0;i<5;i++){
var _html = '<span title="'+parseInt(i+1)+'分"></span>';
$(".star_score").append(_html);
}
//鼠标滑过，星星背景图片改成选中图片
$(".star_score span").hover(function(){
var index = $(this).index();
for(var i = 0; i <=index; i++){
$(".star_score span").eq(i).addClass("active");
}
//鼠标移除去掉激活效果
},function(){
$(".star_score span").removeClass("active");
});
var tourist =- parseInt(10000000*Math.random());//给游客随机id
//星星点击，这颗星星之前的所有星星加上选中效果
$(".star_score span").on("click",function(){
var x = $(this).index();
$(".star_score span").removeClass('select');
for (var i = 0; i <= x; i++) {
$(".star_score span").eq(i).addClass('select');
};
evaluate(x+1,tourist);
})
})
function evaluate(scores,tourist){
var pid   = '78';
var aid   = '4787';
$.ajax({
url:"/index/evaluate",
type:"post",
data:{
score : scores,
pid   : pid, 
aid   : aid,
uid   : tourist,
title : book.bookname,
mintitle:kn.ktitle,
},
dataType:"json",
success:function(msg){
if(msg.statusCode==200){
toastr.success(msg.message);
}
}
});
}
function openNoteList(obj){
var display=$('#notelist_content').css('display');
if(display=='none'){
$(obj).children('i').addClass('icon-circle-arrow-up');
$(obj).children('i').removeClass('icon-circle-arrow-down');
$('#notelist_content').show();
}else{
$(obj).children('i').addClass('icon-circle-arrow-down');
$(obj).children('i').removeClass('icon-circle-arrow-up');
$('#notelist_content').hide();
} 
}
getNotelist();
//笔记点赞
function islikeNote(obj,kmid){
toastr.warning('请先登录');
}
  //   function getNotelist(){
  //    $.ajax({
// url:"/index/getNotelist",
// type:"post",
// data:{
// pename:book.pename,
// kename:kn.kename,
// },
// dataType:"json",
// success:function(msg){
//  var ob = eval(msg.data.notelist);
//  if(ob.length>0){
//     $('#notelist_content').show();
//       $('.notelist-box').show();
//    var str='<ul>';
 //              for(var o in ob){  
 //                str+='<li class="notelist-item"><div class="notelist-author"><a href="/u/'+ob[o].uid+'"><img src="/attachments/avatar2/avatar_'+ob[o].uid+'.jpg" class="avatar"><span class="name">'+ob[o].creator+'</span></a></div><div class="notelist-wrap content-intro">'+ob[o].kcontent+'</div></li>';
 //              }
 //              str+='</ul>';  
 //              $("#notelist_content").html(str);
  //                 AjaxDo.bindDialog();
//  }else{
//   $('.notelist-box').hide();
//  }
//    }
// });
  //   }
</script>

</body></html>